home *** CD-ROM | disk | FTP | other *** search
- ; a0 - estr
- ; a1 - str
- ; d0 - length=-1
-
- xdef _EStrAdd
-
- _EStrAdd movem.l d2-d3/a2,-(a7)
- moveq #0,d3
- move.w (-2,a0),d3
- move.l a0,a2
- moveq #0,d1
- move.w (-4,a0),d1
- sub.l d3,d1
- add.l d3,a0
- cmp.l d0,d1
- bpl.s .skip
- move.l d1,d0
- .skip move.w d0,d2
- beq.s .dontfit
- subq.l #1,d0
- .loop move.b (a1)+,(a0)+
- beq.s .done
- dbra.s d0,.loop
- clr.b (a0)+
- .done addq.w #1,d0
- sub.w d0,d2
- add.w d3,d2
- move.w d2,(-2,a2)
- .dontfit move.l a2,d0
- movem.l (a7)+,d2-d3/a2
- rts
-